var type = RequestURLParam.getParam("type")
    , isAdmin = RequestURLParam.getParam("isAdmin")
    , oldOpen = RequestURLParam.getParam("oldOpen")
    , urlTxt = "/sys-org/add"
    , orgCate
    , form
    , upload
    , parentOrg
    ,sysorg
    , fileId = 0;


layui.use(['form', 'upload'], function () {
    form = layui.form;
    upload = layui.upload;

    var selectObject = JSON.parse(localStorage.sysOrg);

    sysorg = selectObject;
    orgCate = selectObject.sysCate;
    parentOrg = selectObject.parentOrg;

    $('#cateName').html(orgCate.socName);
    $('#orgType').html(parentOrg ? '部门' : '单位');
    $('#parentName').html(parentOrg ? parentOrg.orgName : '没有指定');

    if (type && type === 'edit') {
        sysOrg = selectObject.currentOrg;
        init_data();
        urlTxt = "/sys-org/update";
    } else {
        $('#cateName').html(orgCate.socName);


        switch (parseInt(oldOpen)) {
            case 1: // 1）父机构如果公开，则子机构默认显示公开且不可选
                $('input[name=open]').each(function (item) {
                    $(this).prop('disabled', true);
                    if (this.defaultValue == 1) {
                        $(this).prop('checked', true);
                    }
                });
                break;
            case 2: // 2) 根机构如果半公开，则子机构默认显示不公开且可选
                $('input[name=open]').each(function (item) {
                    if (this.defaultValue == 3) {
                        $(this).prop('checked', true);
                    }
                });
                break;
            case 3: // 3）父机构如果不公开，则子机构默认显示不公开且不可选
                $('input[name=open]').each(function (item) {
                    $(this).prop('disabled', true);
                    if (this.defaultValue == 3) {
                        $(this).prop('checked', true);
                    }
                });
                break;
        }
        form.render();

        if(parentOrg != null){
            $('#addr').hide();
            $('#defaultPost').hide();
            $('#creditCode').hide();
            $('input[title="半公开"]').next().hide(); //要在form.render()后执行，不然不起效果
        }

        //如果不是超级管理员，则公开状态不可见
        if (isAdmin != "true") {
            $('#openState').html("");
        }

        sysOrg = new Object();
        sysOrg.orgCate = orgCate.id;

        if (parentOrg) {
            sysOrg.orgPid = parentOrg.id;
            sysOrg.ognId = parentOrg.ognId;
            sysOrg.postName = parentOrg.postName;
        } else {
            sysOrg.orgPid = 0;
            sysOrg.ognId = 0;
            sysOrg.postName = "";
        }
    }

    //加载文件
    document.getElementById('orgName').focus();

    form.verify({
        orgName: function (value) {
            if (!value || value.length == 0) {
                return '请输入名称，名称为必须入力项目。'
            }
        },
        postName: function (value) {
            if(parentOrg == null){
                if (!value || value.length == 0) {
                    return '请输入默认岗位名称，默认岗位名称为必须入力项目。'
                }
            }
        },
    });

    //监听提交
    form.on('submit(checkData)', function (data) {
        submit_data(data);
        return false;
    });

    //执行实例
    var uploadInst = upload.render({
        elem: '#upload' //绑定元素
        , url: '/file/upload' //上传接口
        , data: {}
        , async: false
        , before: function (obj) {
            obj.preview(function (index, result) {
                $('#icon').attr('src', result); //图片链接（base64）
            });
        }
        , done: function (data) {
            var url = '/file/view/' + data.id;

            fileId = data.id;
            $('#icon').attr('src', url);
        }

        , error: function () {
            //请求异常回调
        }
    });
});

function init_data() {

    switch (parseInt(oldOpen)) {
        case 1: // 1）父机构如果公开，则子机构默认显示公开且不可选
            $('input[name=open]').each(function (item) {
                $(this).prop('disabled', true);
                if (this.defaultValue == 1) {
                    $(this).prop('checked', true);
                }
            });
            form.render();
            break;
        case 2: // 2) 根机构如果半公开，则子机构默认显示不公开且可选
            $('input[name=open]').each(function (item) {
                if (this.defaultValue == 3) {
                    $(this).prop('checked', true);
                }
            });
            form.render();
            break;
        case 3: // 3）父机构如果不公开，则子机构默认显示不公开且不可选
            $('input[name=open]').each(function (item) {
                $(this).prop('disabled', true);
                if (this.defaultValue == 3) {
                    $(this).prop('checked', true);
                }
            });
            form.render();
            break;
    }

    //如果不是超级管理员，则公开状态不可见
    if (isAdmin != "true") {
        $('#openState').html("");
    }

    $(".layui-input").each(function () {
        $(this).val(sysOrg[this.id])
    });

    //回显单选框
    $('input[name=open]').each(function (item) {
        if (this.defaultValue == sysOrg.open) {
            $(this).prop('checked', true);
        }
    })
    form.render();


    //如果不是单位，则不显示详细地址，默认岗位，信用代码
    if(sysorg.currentOrg != null){
        if(sysorg.currentOrg.orgPid > 0){
            $('#addr').hide();
            $('#defaultPost').hide();
            $('#creditCode').hide();
            $('input[name=open]').each(function () {
                if($(this).val() == 2){
                    $(this).hide();
                    $(this).next().hide(); //要在form.render()后执行，否则不起作用
                }
            });

        }
    }

    fileId = sysOrg.fileId;
    // 1）显示图片
    if (fileId > 0) {
        $('#icon').attr('src', '/file/view/' + fileId);
    }

    $('#orgRemark').html(sysOrg.orgRemark);
}

function submit_data(reqVal) {
    sysOrg.orgName = reqVal.field.orgName;
    sysOrg.orgAdd = reqVal.field.orgAdd;
    sysOrg.orgCreditCode = reqVal.field.orgCreditCode;
    sysOrg.orgRemark = reqVal.field.orgRemark;
    sysOrg.postName = reqVal.field.postName;
    sysOrg.fileId = fileId;

    if (isAdmin == 'true') {
        sysOrg.open = reqVal.field.open;
    }

    ActHttpRequest(urlTxt, sysOrg, function (data) {
        if (data.code == 0) {
            localStorage.sysOrg1 = JSON.stringify(sysorg);
            localStorage.removeItem('sysOrg');
            parent.layer.msg('成功！', {icon: 1, time: 800});
        } else {
            parent.layer.alert(data.msg);
        }
        var thisindex = parent.layer.getFrameIndex(window.name); //获取窗口索引
        parent.layer.close(thisindex);
    });
}

